The present invention relates to the field of satellite-based positioning, and more particularly to approximating satellite motion.
Typically, a Global Positioning System (GPS) receiver determines its position based on measuring relative times-of-arrival (TOA) of signals synchronously transmitted from satellites. Such signals include a timestamp indicating when they were transmitted by the satellites. The satellite positions can be calculated as a function of time based on 16 parameters transmitted in each satellite""s ephemeris message, six of the parameters being equivalent to so-called Keplerian elements, and the other nine parameters being perturbation corrections to the Keplerian elements. The parameters areall time dependent, and the values provided in an ephemeris message are valid only for approximately four hours from the time of ephemeris, also included in the ephemeris message.
In a conventional computation of satellite position, the parameters of the ephemeris message of a satellite and current GPS time are substituted into a number of equations so as to solve for the satellite position. Usually, Earth-centered Earth-fixed (ECEP) coordinates are used. Often, in addition to the position of each satellite, the velocity of each satellite is also used in determining the GPS receiver position and/or the GPS receiver velocity. One way to calculate the satellite velocity is to form the derivatives of the equations used to determine the satellite position.
The conventional computation of satellite position and velocity based on the ephemeris parameters is computationally burdensome. Nearly 20 equations must be solved, involving complicated operations, such as evaluating trigonometric functions and square roots. One of the equations to be solved is transcendental, and so must be solved iteratively. Often the ephemeris data from several satellites, usually from 4 to 12 satellites, are used (simultaneously) to triangulate to determine the GPS receiver position. In some GPS receiver applications, it is necessary to compute the positions and velocities of a number of satellites repeatedly, as often as once every second; even after solving the nearly 20 equations for a satellite position and velocity at one time, for each additional time at which the satellite position is to be determined, the nearly 20 equations must be solved again. With current processing capability, such computations of the satellite positions and velocities places a significant load on a typical processor of a GPS receiver.
What is needed is a way to solve for a satellite position and velocity that is sufficiently accurate for GPS applications, and yet reduces the computational burden compared to that of the conventional computation of satellite position and velocity.
Accordingly, the present invention provides, a method and corresponding apparatus and system for determining the position of a satellite at any instant of time between two sampling instants, based on information in at least one ephemeris message, or other suitable navigation message originating from the satellite, provided by the satellite, the information allowing the computation of the satellite positions at the two sampling instants, the method including the steps of: setting the first sampling instant; computing the satellite position at the first sampling instant using parameters provided in an ephemeris message, or suitable other navigation message originating from the satellite, with a suitable time of ephemeris or other time reference indicating a time of validity of the message; setting a next sampling instant later than the first sampling instant; computing the satellite position at the second sampling instant again using parameters provided in an ephemeris message, or other suitable navigation message originating from the satellite, with a suitable time of ephemeris or other time reference indicating a time of validity of the message; and for each of the three dimensions of motion, constructing a polynomial of at least third degree by choosing the coefficients of the polynomial so that the polynomial interpolates the satellite position at each of the sampling instants.
In a further aspect of the invention, the method also includes the steps of: computing the satellites velocities at each of the sampling instants based on the same parameters as were used in computing the satellite positions at the sampling instant; and choosing the coefficients of the polynomial for each of the three dimensions of motion so as to provide a polynomial that not only interpolates the satellite position at each of the sampling instants, but is such that its first derivative interpolates the satellite velocity at each of the sampling instants.
In another, further aspect of the invention, the polynomial is a Hermite interpolating polynomial.
According to the invention, to obtain an approximate spacecraft position at a desired instant of time between the two sampling instants, the polynomial so determined is evaluated at the desired instant of time.
Further according to the invention, the derivative of the polynomial is evaluated at an instant of time between the two sampling instants so as to determine the spacecraft velocity at the instant of time.
In a still further aspect of the invention, the polynomial is of at least fifth degree, and the method of the invention includes the further steps of: calculating the satellite acceleration at each of the sampling instants based on the same parameters as were used in computing the satellite positions at the sampling instant; and choosing the coefficients of the polynomial for each of the three dimensions of motion so as to provide a polynomial corresponding to the two sampling instants that interpolates the satellite position at the two sampling instants, and further is such that its first derivative interpolates the satellite velocity at the two sampling instants and its second derivative interpolates the satellite acceleration at the two sampling instants. In an application according to this further aspect of the invention, the second derivative of the polynomial is evaluated at an instant of time between the two sampling instants so as to determine the spacecraft acceleration at the instant of time.